# 任务详情
# 输入一个字符串，输出该字符串的全排列。

# 任务要求
# 1. 请将代码区的函数补充完整

# 2. 函数接收str数据类型的变量string，返回变量为list数据类型

# 测试用例
# 输入：'abc’

# 输出：['abc', 'acb', 'bac', 'bca', 'cab', 'cba' ]

# 输入：''

# 输出：[]
# 
# 
# # 1.运行或提交代码不需要自己编写测试用例，后台自动进行测试检查。
# 2.您编写代码的区域可以不限定在类或者函数体内，保证输入与输出符合任务要求即可。
# 3.点击“运行代码”按钮，可以查看程序设计是否正确，运行次数越多，任务得分越低。
# 4.点击“提交代码”按钮，系统将保存代码，并记录任务数据。
# 5.点击右上方“结束任务”按钮，系统将在后台计算任务得分，任务结束。
# -*- coding: utf-8 -*- 
class Solution:
    def strPermutation(self, string: str) -> list:
        # 从此处开始编写代码
        if string == '':
            return []
        if len(string) <= 1:
            return [string]
        str_list = []
        for i in range(len(string)):
            for j in Solution.strPermutation(Solution, string[0:i] + string[i + 1:]):
                str_list.append(string[i] + j)
        # str_list = list(set(str_list))   # 去重
        return str_list
        # 代码编写结束


str1 = "abc"
str2 = ''
str3 = '1224'

print(Solution.strPermutation(Solution, str3))
